/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package cz.cuni.mff.d3s.arcas.intermediate.impl;

import cz.cuni.mff.d3s.arcas.intermediate.Connector;
import cz.cuni.mff.d3s.arcas.intermediate.DeploymentDock;
import cz.cuni.mff.d3s.arcas.intermediate.DistributionArchitecture;
import cz.cuni.mff.d3s.arcas.intermediate.ElementArchitecture;
import cz.cuni.mff.d3s.arcas.intermediate.IntermediateDocument;
import cz.cuni.mff.d3s.arcas.intermediate.IntermediatePackage;
import cz.cuni.mff.d3s.arcas.intermediate.Port;
import cz.cuni.mff.d3s.arcas.intermediate.Role;
import cz.cuni.mff.d3s.arcas.intermediate.Signature;
import cz.cuni.mff.d3s.arcas.intermediate.Subelement;
import cz.cuni.mff.d3s.arcas.intermediate.Unit;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EClass;

import org.eclipse.emf.internal.cdo.CDOObjectImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Document</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.impl.IntermediateDocumentImpl#getConnectors <em>Connectors</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.impl.IntermediateDocumentImpl#getDocks <em>Docks</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.impl.IntermediateDocumentImpl#getDistributionArchitectures <em>Distribution Architectures</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.impl.IntermediateDocumentImpl#getElementArchitectures <em>Element Architectures</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.impl.IntermediateDocumentImpl#getPorts <em>Ports</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.impl.IntermediateDocumentImpl#getRoles <em>Roles</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.impl.IntermediateDocumentImpl#getSubelements <em>Subelements</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.impl.IntermediateDocumentImpl#getSignatures <em>Signatures</em>}</li>
 *   <li>{@link cz.cuni.mff.d3s.arcas.intermediate.impl.IntermediateDocumentImpl#getUnits <em>Units</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class IntermediateDocumentImpl extends CDOObjectImpl implements IntermediateDocument {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IntermediateDocumentImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return IntermediatePackage.Literals.INTERMEDIATE_DOCUMENT;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected int eStaticFeatureCount() {
		return 0;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public EList<Connector> getConnectors() {
		return (EList<Connector>)eGet(IntermediatePackage.Literals.INTERMEDIATE_DOCUMENT__CONNECTORS, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public EList<DeploymentDock> getDocks() {
		return (EList<DeploymentDock>)eGet(IntermediatePackage.Literals.INTERMEDIATE_DOCUMENT__DOCKS, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public EList<DistributionArchitecture> getDistributionArchitectures() {
		return (EList<DistributionArchitecture>)eGet(IntermediatePackage.Literals.INTERMEDIATE_DOCUMENT__DISTRIBUTION_ARCHITECTURES, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public EList<ElementArchitecture> getElementArchitectures() {
		return (EList<ElementArchitecture>)eGet(IntermediatePackage.Literals.INTERMEDIATE_DOCUMENT__ELEMENT_ARCHITECTURES, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public EList<Port> getPorts() {
		return (EList<Port>)eGet(IntermediatePackage.Literals.INTERMEDIATE_DOCUMENT__PORTS, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public EList<Role> getRoles() {
		return (EList<Role>)eGet(IntermediatePackage.Literals.INTERMEDIATE_DOCUMENT__ROLES, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public EList<Subelement> getSubelements() {
		return (EList<Subelement>)eGet(IntermediatePackage.Literals.INTERMEDIATE_DOCUMENT__SUBELEMENTS, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public EList<Signature> getSignatures() {
		return (EList<Signature>)eGet(IntermediatePackage.Literals.INTERMEDIATE_DOCUMENT__SIGNATURES, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public EList<Unit> getUnits() {
		return (EList<Unit>)eGet(IntermediatePackage.Literals.INTERMEDIATE_DOCUMENT__UNITS, true);
	}

} //IntermediateDocumentImpl
